package com.aaa.dang.modules.checkin.dao;

import com.aaa.dang.common.entity.Room;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

/**
 * @author 刘旭泽
 * @version 1.0
 * @date 2018/12/15
 * @description
 */
@Mapper
@Component
public interface CheckInDao {
    /**
     * 查询tbl_bed表得到所有的房间信息数据
     * @return
     */
    List<Map<String,Object>> getAllMsg(Map<String,Object> query);

    /**
     *  得到tbl_room 表中数据行数用于分页
     * @return  房间表中数据行数
     */
    int getCount(Map<String,Object> query);

    /**
     *  得到相应房间所有的空床位编号 用于办理入住选择床位下拉框动态展示
     */
    List<Map<String,Object>> getEmptyBed(Map<String,Object> query);

    /**
     *往user表中插入user信息
     * @return 受影响的行数
     */
    int addStuUser(Map<String,Object> query);
    /**
     *往user表中插入user信息end_time
     * @return 受影响的行数
     */
    int addStuUserByPayType(Map<String,Object> query);
    /**
     *往user表中更改user信息
     * @return 受影响的行数
     */
    int updateStuUser(Map<String,Object> query);
    /**
     *往user表中更改信息end_time
     * @return 受影响的行数
     */
    int updateStuUserByPayType(Map<String,Object> query);

    /**
     *更改tbl_room表
     * @return 受影响的行数
     */
    int updateRoom(Map<String,Object> query);
    /**
     *更改room_user_bed表
     * @return 受影响的行数
     */
   int updateRoomUserBed(Map<String,Object> query);
    /**
     *入住办理输入手机号 ，input框失焦事件 发送请求 返回用户信息
     * @return 单个用户信息
     */
    Map<String,Object> checkPhone(Map<String,Object> query);

    /**
     *查询该用户的退宿时间
     * @return 退宿时间
     */
    Map<String,Object> checkRetireTime(Map<String,Object> query);
    /**
     *查询该用户办理入住的起始日期
     * @return 起始日期
     */
    Map<String,Object> checkStartTime(Map<String,Object> query);

    /**
     * 查询房间id
     * @param map
     * @return
     */
    int selectRooomId(Map<String,Object> map);

    /**
     * 查询room_user_bed表id
     * @param map
     * @return
     */
    int selectRoomUserBedId(Map<String,Object> map);

    /**
     * 判断床位号是否已被占用
     * @param roomUserBedId
     * @return
     */
    Map<String,Object> checkBedNum(int roomUserBedId);
}
